The present invention relates generally to data communications, and particularly to enabling a network interface to support multiple networks.
The rapid proliferation of networks is making multiple networks available to computer users. For example, a user of a portable computer in a corporate workplace may have access to a wired network and to a wireless network. The user will normally connect his computer to the wired network because wired networks offer higher data transfer speeds and better reliability than wireless networks. However, the user may occasionally connect his laptop computer to the wireless network to take advantage of its portability, for example, to remain connected to the corporate internet to check for incoming electronic mail messages during a long meeting where no wired network access is available. Unfortunately, conventional network interfaces make changing networks very inconvenient.
FIG. 1 is a functional block diagram of a network device 100 including a host 102 such as a laptop computer, a plurality of conventional network interfaces 104A through 104N, and a plurality of networks 106A through 106N. Host 102 includes one or more software applications 108 and a plurality of device drivers 110A through 110N. Applications 108 communicate over one of networks 106 using a device driver 110 and a network interface 104 such as a network interface card. An application is a high-level computer program, such as a Web browser. A device driver is a low-level computer program that allows an application to communicate with a device, such as a printer or network interface card.
Each network interface 104 includes a network interface controller 112, a media access controller (MAC) 114, a filter 116, a physical layer device (PHY) 118, and a programmable read-only-memory (PROM) 120. A different MAC address is permanently assigned to each network interface during manufacture by programming a MAC address into PROM 120.
Consider network interface 104A. When network interface 104A is powered, network interface controller 112A retrieves the MAC address from PROM 120A, and loads the MAC address into MAC 114A. MAC 114A uses this MAC address for sending data from host 102 to network 106A by inserting the MAC address into the header of each frame of the data. Network interface 104A uses filter 116A to examine the header of each frame of data on the network, and transfers those frames having the MAC address of the network interface 104A to the host 102. Network interface 104N operates in the same way, but with a different MAC address. Further, the PHY 118 of a network interface 104 is specifically designed to be used with one type of network. Thus a network interface 104 for a wired network will not work with a wireless network. Thus to be able to communicate with multiple networks, a computer must include a conventional network interface for each network.
In conventional designs, each network 106 has a separate device driver 110, which is loaded by the operating system of host 102 when the operating system is started. When a user wants to change to a different network 106, the user must select the new network, and then restart (that is, “reboot”) the operating system so the operating system can load the device driver 110 for the new network. This reboot process can take several minutes. In addition, rebooting the operating system requires that all of the active applications 108 first be closed. Thus in order to change networks and resume working at the same point, a user must save the data for all open applications, close all of the open applications, reboot the operating system, launch the applications that were closed, and load the data that was saved for each application. Clearly, this is a frustrating and time-consuming process.